#ifndef DOCTYPE_DEFINITION_H
#define DOCTYPE_DEFINITION_H

#include <map>
#include <string>
#include <iostream>

class BaseElement;

class DoctypeDefinition {
    
public:
    DoctypeDefinition();
    virtual ~DoctypeDefinition(); 
    BaseElement* getElementByName(const std::string & aName);
	void addDeclaration(std::string &aName, BaseElement * aElem);
	virtual void print(std::ostream& out);

protected:
    std::map<std::string, BaseElement*>* declaredElements;

};

#endif //DOCTYPE_DEFINITION_H
